Skip to content

Funnel exploration (PoC)#6163

Draft
ukutaht wants to merge 9 commits intomasterfrom
funnel-exploration
Draft

Funnel exploration (PoC)#6163
ukutaht wants to merge 9 commits intomasterfrom
funnel-exploration

Conversation

@ukutaht
Copy link
Contributor

@ukutaht ukutaht commented Mar 16, 2026

Adds a proof of concept for funnel exploration feature. Mechanism:

  • New event:label dimension to be able to break down a mix of pageviews and custom events without having to create goals for them. The label is Visit <page> for pageviews and the custom event name for custom events.
  • A new sequence behavioural filter
  • funnel_exploration feature flag shows a simple UI
Screenshot 2026-03-16 at 13 08 02

This is mostly a demo, not production-ready by any means. Explicitly ignored concerns for now:

  • sequence filter overlap with has_done. Feels like it should be possible to find a design that unifies these behavioural filters. Requires thoughtful API design.
  • Creating funnels from exploration: requires relaxing funnels so that steps need not to be configured as goals first
  • Inefficient filtering in sequence filter. At the moment each step filters by event:label which requires scanning the whole events table and building labels for every event. Also it builds many subqueries, perhaps this can be avoided.
  • UI needs work

ukutaht added 5 commits March 16, 2026 12:33
Adds a new `sequence` filter operator that lets callers express "sessions
where step A was followed by step B (in order, within the same session)".
When querying with event-specific dimensions the filter pins results to the
immediate next event after the sequence completes; for session/aggregate
queries it restricts to sessions where the sequence occurred.

Also adds a simplified `event:label` computed dimension: "Visit /path" for
pageviews, goal display name (or raw event name) for custom events.
Adds a 3-column waterfall journey explorer ("Explore user journeys") to
the Behaviours panel, gated behind a `funnel_exploration` feature flag.
When enabled, an "Explore" option appears first in the Funnels dropdown
and renders the FunnelExploration component that uses the new sequence
filter and event:label dimension to show what events users do next.
@github-actions
Copy link

Preview environment👷🏼‍♀️🏗️
PR-6163

ukutaht added 4 commits March 16, 2026 13:17
matching_toplevel_filters was populated with all site goals when no
event:goal filter was applied, causing derived_name_filter to restrict
events to goal-relevant names only. With scroll goals present, this
included 'engagement' events while excluding pageviews, leaking
engagement rows into event:label results.

Now matching_toplevel_filters is only populated when event:goal is in
dimensions or filters - the cases that actually need it.
Page/entry_page/exit_page filters are stripped from subsequent column
queries so they only constrain the starting point of the journey.
Shows 3 columns by default; selecting an event in the last column
reveals a new one, allowing exploration of arbitrarily deep journeys.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant